PRET-C: A New Language for Programming Precision Timed Architectures
نویسندگان
چکیده
Precision Timed Architectures (PRET) are a recent proposal for designing processors for real-time embedded systems. These processors must guarantee precise worst case reaction time (WCRT) of applications without sacrificing throughput, and must allow the WCRT of programs to be computed simply as well as efficiently. The objective of this paper is to propose a new synchronous language based on C, called PRET-C, for programming PRET machines. PRET-C supports synchronous concurrency, preemption, and a highlevel construct for logical time. In contrast to existing synchronous languages, PRET-C offers C-based shared memory communications between concurrent threads, that are guaranteed to be thread safe via the proposed semantics. Preemption is also semantically simpler. Programmer can freely mix both logical time (though the notion of logical ticks) and physical time by controlling hardware timers thanks to C libraries. Mapping of logical time to physical time is achieved thanks to the WCRT analyzer and the associated compiler. We also propose the Auckland Reactive PRET processor (ARPRET) that customizes the Xilinx MicroBlaze processor, a general purpose processor (GPP). Together, PRET-C and ARPRET offer an easy, scalable, and efficient solution to the design of precision timed embedded systems. Key-words: Real-time systems, Precision Timed (PRET) Architectures, Synchronous Languages. ∗ Department of ECE, University of Auckland, New Zealand [email protected] † Department of ECE, University of Auckland, New Zealand [email protected]. Supported by research and study leave from Auckland University and a research fellowship for experienced researchers from the Alexander von Humboldt foundation. ‡ INRIA Grenoble Rhône-Alpes, POP ART project team, France, [email protected]. Supported by a Marie Curie International Outgoing Fellowship within the 7th European Community Framework Programme. § Department of Computer Science, CAU Kiel, Germany, [email protected] in ria -0 03 91 62 1, v er si on 1 4 Ju n 20 09 PRET-C: Un nouveau langage pour programmer les machines temporellement prédictives Résumé : Les architectures temporellement prédictives (PRET) ont été proposées récemment pour concevoir des processeurs pour les systèmes temps-réels embarqués. Ces processeurs doivent permettre de calculer simplement et efficacement le temps de réaction au pire cas (WCRT) des programmes, de garantir que ce WCRT est toujours respecté, sans pour autant sacrifier les performances. L’objectif de cet article est de proposer un nouveau langage de programmation synchrone basé sur C, appelé PRET-C, pour programmer les machines PRET. PRET-C supporte la concurrence synchrone, la préemption, et une construction de haut niveau pour le temps logique. Au contraire des langages synchrones existant, PRET-C offre des communications entre fils d’exécutions par mémoire partagée, dont le déterminisme est garanti grâce à la sémantique proposée. La préemption est également plus simple. Le programmeur peut combiner librement du temps logique (grâce à la notion de tick logique) et du temps physique en contrôlant des timeurs via des librairies C. La projection du temps physique sur le temps logique est obtenue grâce à l’analyseur de WCRT et au compilateur associé. Nous présentons également le processeur réactif PRET d’Auckland (ARPRET) qui customise le processeur MicroBlaze de Xilinx, un processeur général (GPP). Ensembles, PRET-C et ARPRET offrent une solution facile, efficace et qui passe à l’échelle pour la conception des systèmes embarqués temporellement prédictifs. Mots-clés : Systèmes temps-réel, architecture temporellement prédictives (PRET), langages de programmation synchrones. in ria -0 03 91 62 1, v er si on 1 4 Ju n 20 09 PRET-C: A new language for programming precision timed architectures 3
منابع مشابه
C Code Generation from the Giotto Model of Computation to the PRET Architecture
We present code generation from the Giotto model of computation in Ptolemy II to the Precision Timed (PRET) Architecture. Giotto is a time-triggered programming model that provides the user with methods to specify timing at a high level, and PRET is a processor architecture that emphasizes predictable timing. The goal of code generation is to automatically generate code that correctly implement...
متن کاملPredictable Reactive Processors for Next Generation Computing: A Proposal
have been working on a family of processors they term as reactive processors [20]. Reactive architectures are specialized embedded processors that directly interact with the environment through a specialized instruction set architecture (ISA). The hallmark of reactive processing is timing predictability and efficient resource usage, using the synchronous model of execution as exemplified by the...
متن کاملPredictable Parallel Programming using PRET-C
Embedded system designers are always faced with the challenge of achieving a good price-performance trade-off. Recently, the advent of affordable multicore processors has offered designers the choice of high-performance architectures. However, efficient and predictable programming of multicore systems still poses considerable challenges. This paper offers a novel solution to this problem by ans...
متن کاملPerformance Analysis of Software Architectures via a Process Algebraic Description Language
We address the problem of describing and analyzing functional and nonfunctional properties of software architectures. We thus develop an architectural description language which supports not only static semantic analysis (architectural compatibility checking) and functional verification, but also performance evaluation. To this purpose, we base our language on the stochastically timed process a...
متن کاملA Model Based Approach to Combine Load and Functional Tests for Service Oriented Architectures
We propose a new model-based framework to combine functional and load tests for service oriented architectures. The new framework is based on the model of extended timed automata with inputs/ouputs and shared integer variables. A test generation algorithm to produce analog-clock tests is proposed. To illustrate our approach, we report on a case study from the field of load balancing based archi...
متن کامل